const jwt = require("jsonwebtoken");
const { PRIVATE_KEY } = require("../config/secret");

// 颁发令牌token

/*
    expiresIn:5 过期时间，时间单位是秒
    也可以这么写 expiresIn:1d 代表一天 
    1h 代表一小时
*/
// 本次是为了测试，所以设置时间 短token5秒 长token15秒
const accessTokenTime = 3 * 60 * 60;
// const accessTokenTime = 3;
const refreshTokenTime = 7 * 24 * 60 * 60;
// const refreshTokenTime = 5;

// 生成accessToken
const setAccessToken = (payload = {}) => {
  // payload 携带用户信息
  return jwt.sign(payload, PRIVATE_KEY, {
    expiresIn: accessTokenTime, // 过期时间
    algorithm: "RS256", // 加密方式：默认是HS256对称加密，这里用RS256非对称加密
  });
};
//生成refreshToken
const setRefreshToken = (payload = {}) => {
  return jwt.sign(payload, PRIVATE_KEY, {
    expiresIn: refreshTokenTime, // 过期时间
    algorithm: "RS256", // 加密方式：默认是HS256对称加密，这里用RS256非对称加密
  });
};

module.exports = {
  setAccessToken,
  setRefreshToken,
};
